package tech.edwardvan.designpattern.pattern.creational.simplefactory;

import lombok.extern.slf4j.Slf4j;

/**
 * 简单工厂模式
 *
 * @author EdwardVan
 */
@Slf4j
public class SimpleFactoryDemo {
    public static void main(String[] args) {
        //对象的创建和使用耦合
        //复杂的创建过程
        GPU gpu = new MsiGPU();
        gpu.output();
        //复杂的创建过程
        gpu = new ColorfulGPU();
        gpu.output();
    }

    private interface GPU {
        void output();
    }

    private static class MsiGPU implements GPU {

        @Override
        public void output() {
            log.info("微星显卡输出");
        }
    }

    private static class ColorfulGPU implements GPU {

        @Override
        public void output() {
            log.info("七彩虹显卡输出");
        }
    }

}
